题目: 密码验证合格程序
描述
你需要书写一个程序验证给定的密码是否合格。
合格的密码要求:
∙ ∙长度至少 8 位
∙ ∙必须包含大写字母、小写字母、数字、特殊字符中的至少三种
∙ ∙不能分割出两个独立的、长度大于 2 的连续子串,使得这两个子串完全相同;更具体地,如果存在两个长度大于 22 的独立子串 s1,s2s1,s2 ,使得 s1=s2s1=s2 ,那么密码不合法。
子串为从原字符串中,连续的选择一段字符(可以全选、可以不选)得到的新字符串。
可见字符集为 ASCII 码在 3333 到 126126 范围内的可见字符。您可以参阅下表获得其详细信息(您可能关注的内容是,这其中不包含空格、换行)。
输入描述:
本题将会给出 1≦T≦101≦T≦10 组测试数据,确切数字未知,您需要一直读入直到文件结尾;每组测试数据描述如下:
在一行上输入一个长度为 1≦length(s)≦1001≦length(s)≦100 ,由可见字符构成的字符串 ss ,代表待判断的密码。
输出描述:
对于每一组测试数据,新起一行。若密码合格,输出 OKOK ,否则输出 NGNG 。
示例1
1 | 输入: |
示例2
1 | 输入: |
题解
1 |
|
思路
题目要求了密码字符类型超过三种,不存在两个独立、长度超过2的相同子串。
将i 与 i + 3比较
将i + 1 与 i + 4比较
将i + 2 与 i + 5比较
此题挺好